import fitz  # 导入PyMUPDF库，注意这里用fitz作为别名
from tqdm import tqdm  # 用于显示进度条，让我们知道处理进度


def read_pdf(pdf_path):
    """
    读取PDF文件并提取每页的文本内容

    参数:
        pdf_path: PDF文件的路径（例如："平安保险用户手册.pdf"）

    返回:
        一个列表，每个元素是字典，包含"page_num"（页码）和"text"（该页文本）
    """
    # 打开PDF文件
    doc = fitz.open(pdf_path)

    # 用来存储结果的列表
    pdf_contents = []

    # 遍历每一页，tqdm用于显示进度条
    for page_num in tqdm(range(len(doc)), desc="读取PDF中"):
        # 获取当前页
        page = doc[page_num]

        # 提取当前页的文本
        text = page.get_text()

        # 只添加有内容的页（跳过空白页）
        if text.strip():  # strip()用于去除前后空格，如果结果不为空说明有内容
            pdf_contents.append({
                "page_num": page_num + 1,  # 页码从1开始，更符合阅读习惯
                "text": text
            })

    # 关闭PDF文件
    doc.close()

    return pdf_contents


# 测试代码：如果直接运行这个文件，会执行以下代码
if __name__ == "__main__":
    # 替换成你的PDF文件路径
    pdf_path = "平安保险用户手册.pdf"

    # 调用函数读取PDF
    contents = read_pdf(pdf_path)
    print(contents)

    # 打印结果看看
    print(f"成功读取了{len(contents)}页内容")
    # 打印第一页的部分内容
    if contents:
        print(f"\n第{contents[0]['page_num']}页的内容（前200字）：")
        print(contents[0]['text'][:200] + "...")
